import { createStore, createLogger } from 'vuex'

// 导入子模块
import user from './modules/user'
import cart from './modules/cart'
import category from './modules/category'

// 导入持久化插件 => 作用：把vuex中存的state数据持久化
import createPersistedState from 'vuex-persistedstate'
/**
 * 注意：
 * 1. 持久化插件不会自动存state
 * 2. 调用就会存储 => 之后有变化会自动同步新的state数据到本地
 * 如何控制持久化存储的范围？ => 通过paths:[]
 * 1. 顶层数据：直接用属性名指定
 * 2. 子模块的数据：模块名.属性名
 */
export default createStore({
  state: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
    user,
    cart,
    category
  },
  // 使用插件的选项
  plugins: [
    createPersistedState({ key: 'rabbit-store', paths: ['user', 'cart'] }),
    createLogger()
  ]
})
